package com.xuelang.pipeline.infrastructure.pipeline.dataobject;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * <p>流水线触发配置DO</p>
 *
 * @author : yixin.lys
 * @date : 2024-06-11 17:45
 **/
@TableName("IM_OT_DO_TRIGGER_SETTING")
@ToString
@Data
public class TriggerSettingDO {

    /**
     * 主键，自增
     */
    @TableId(value = "ID", type = IdType.AUTO)
    private Long id;

    /**
     * 流水线编码
     */
    private String pipelineCode;

    /**
     * 代码库触发，1开启0关闭
     */
    private Integer isCodeTrigger;

    /**
     * Push事件，1开启0关闭
     */
    private Integer isCodePush;

    /**
     * AcceptedMergeRequest事件，1开启0关闭
     */
    private Integer isCodeMerge;

    /**
     * 定时触发，1开启0关闭
     */
    private Integer isClockTrigger;

    /**
     * 触发方式，1周期触发2单次触发3自定义触发
     */
    private Integer triggerWay;

    /**
     * 日期选择，1按周选择2按月选择
     */
    private Integer dateSelect;

    /**
     * 触发时间，待定义
     */
    private String triggerTime;

    /**
     * 周期时间表达式
     */
    private String cronExpression;

    /**
     * 代码变更定时器触发，1开启0关闭
     */
    private Integer isCodeChangeTrigger;

    /**
     * 运行通知，1开启0关闭
     */
    private Integer isRunNotify;

    /**
     * 通知方式，1邮箱2站内信，多选用###分割，如1###2
     */
    private String notifyWay;

    /**
     * 通知事件，待定义可选项
     */
    private String notifyEvent;

    /**
     * 通知人类型，1流水线角色2人员3角色
     */
    private Integer notifyReceiverType;

    /**
     * 多个角色或人员，用,分割，如A,B
     */
    private String notifyReceiverList;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String creatorId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人ID
     */
    @TableField(fill = FieldFill.UPDATE)
    private String updaterId;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 0否/删除、1是/使用，默认值为1
     */
    private Integer useFlag;

}
